/**
 */
package ram_pc.provider;

import java.util.ArrayList;
import java.util.Collection;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.edit.provider.ChangeNotifier;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.IChangeNotifier;
import org.eclipse.emf.edit.provider.IDisposable;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertySource;
import org.eclipse.emf.edit.provider.INotifyChangedListener;
import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

import ram_pc.util.Ram_pcAdapterFactory;

/**
 * This is the factory that is used to provide the interfaces needed to support Viewers.
 * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
 * The adapters also support Eclipse property sheets.
 * Note that most of the adapters are shared among multiple instances.
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
public class Ram_pcItemProviderAdapterFactory extends Ram_pcAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable
{
  /**
   * This keeps track of the root adapter factory that delegates to this adapter factory.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected ComposedAdapterFactory parentAdapterFactory;

  /**
   * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected IChangeNotifier changeNotifier = new ChangeNotifier();

  /**
   * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected Collection<Object> supportedTypes = new ArrayList<Object>();

  /**
   * This constructs an instance.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Ram_pcItemProviderAdapterFactory()
  {
    supportedTypes.add(IEditingDomainItemProvider.class);
    supportedTypes.add(IStructuredItemContentProvider.class);
    supportedTypes.add(ITreeItemContentProvider.class);
    supportedTypes.add(IItemLabelProvider.class);
    supportedTypes.add(IItemPropertySource.class);
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.Aspect} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected AspectItemProvider aspectItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.Aspect}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createAspectAdapter()
  {
    if (aspectItemProvider == null)
    {
      aspectItemProvider = new AspectItemProvider(this);
    }

    return aspectItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.MappableElement} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected MappableElementItemProvider mappableElementItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.MappableElement}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createMappableElementAdapter()
  {
    if (mappableElementItemProvider == null)
    {
      mappableElementItemProvider = new MappableElementItemProvider(this);
    }

    return mappableElementItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.StructuralView} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected StructuralViewItemProvider structuralViewItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.StructuralView}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createStructuralViewAdapter()
  {
    if (structuralViewItemProvider == null)
    {
      structuralViewItemProvider = new StructuralViewItemProvider(this);
    }

    return structuralViewItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.Class} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected ClassItemProvider classItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.Class}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createClassAdapter()
  {
    if (classItemProvider == null)
    {
      classItemProvider = new ClassItemProvider(this);
    }

    return classItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.AssociationEnd} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected AssociationEndItemProvider associationEndItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.AssociationEnd}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createAssociationEndAdapter()
  {
    if (associationEndItemProvider == null)
    {
      associationEndItemProvider = new AssociationEndItemProvider(this);
    }

    return associationEndItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.Association} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected AssociationItemProvider associationItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.Association}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createAssociationAdapter()
  {
    if (associationItemProvider == null)
    {
      associationItemProvider = new AssociationItemProvider(this);
    }

    return associationItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.NamedElement} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected NamedElementItemProvider namedElementItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.NamedElement}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createNamedElementAdapter()
  {
    if (namedElementItemProvider == null)
    {
      namedElementItemProvider = new NamedElementItemProvider(this);
    }

    return namedElementItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.Instantiation} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected InstantiationItemProvider instantiationItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.Instantiation}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createInstantiationAdapter()
  {
    if (instantiationItemProvider == null)
    {
      instantiationItemProvider = new InstantiationItemProvider(this);
    }

    return instantiationItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.Mapping} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected MappingItemProvider mappingItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.Mapping}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createMappingAdapter()
  {
    if (mappingItemProvider == null)
    {
      mappingItemProvider = new MappingItemProvider(this);
    }

    return mappingItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.Operation} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected OperationItemProvider operationItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.Operation}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createOperationAdapter()
  {
    if (operationItemProvider == null)
    {
      operationItemProvider = new OperationItemProvider(this);
    }

    return operationItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.Attribute} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected AttributeItemProvider attributeItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.Attribute}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createAttributeAdapter()
  {
    if (attributeItemProvider == null)
    {
      attributeItemProvider = new AttributeItemProvider(this);
    }

    return attributeItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.Type} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected TypeItemProvider typeItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.Type}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createTypeAdapter()
  {
    if (typeItemProvider == null)
    {
      typeItemProvider = new TypeItemProvider(this);
    }

    return typeItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.Parameter} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected ParameterItemProvider parameterItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.Parameter}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createParameterAdapter()
  {
    if (parameterItemProvider == null)
    {
      parameterItemProvider = new ParameterItemProvider(this);
    }

    return parameterItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.PrimitiveType} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected PrimitiveTypeItemProvider primitiveTypeItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.PrimitiveType}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createPrimitiveTypeAdapter()
  {
    if (primitiveTypeItemProvider == null)
    {
      primitiveTypeItemProvider = new PrimitiveTypeItemProvider(this);
    }

    return primitiveTypeItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.ObjectType} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected ObjectTypeItemProvider objectTypeItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.ObjectType}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createObjectTypeAdapter()
  {
    if (objectTypeItemProvider == null)
    {
      objectTypeItemProvider = new ObjectTypeItemProvider(this);
    }

    return objectTypeItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.RVoid} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected RVoidItemProvider rVoidItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.RVoid}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createRVoidAdapter()
  {
    if (rVoidItemProvider == null)
    {
      rVoidItemProvider = new RVoidItemProvider(this);
    }

    return rVoidItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.RBoolean} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected RBooleanItemProvider rBooleanItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.RBoolean}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createRBooleanAdapter()
  {
    if (rBooleanItemProvider == null)
    {
      rBooleanItemProvider = new RBooleanItemProvider(this);
    }

    return rBooleanItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.RInt} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected RIntItemProvider rIntItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.RInt}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createRIntAdapter()
  {
    if (rIntItemProvider == null)
    {
      rIntItemProvider = new RIntItemProvider(this);
    }

    return rIntItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.RChar} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected RCharItemProvider rCharItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.RChar}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createRCharAdapter()
  {
    if (rCharItemProvider == null)
    {
      rCharItemProvider = new RCharItemProvider(this);
    }

    return rCharItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.RString} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected RStringItemProvider rStringItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.RString}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createRStringAdapter()
  {
    if (rStringItemProvider == null)
    {
      rStringItemProvider = new RStringItemProvider(this);
    }

    return rStringItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.RAny} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected RAnyItemProvider rAnyItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.RAny}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createRAnyAdapter()
  {
    if (rAnyItemProvider == null)
    {
      rAnyItemProvider = new RAnyItemProvider(this);
    }

    return rAnyItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.REnum} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected REnumItemProvider rEnumItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.REnum}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createREnumAdapter()
  {
    if (rEnumItemProvider == null)
    {
      rEnumItemProvider = new REnumItemProvider(this);
    }

    return rEnumItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.REnumLiteral} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected REnumLiteralItemProvider rEnumLiteralItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.REnumLiteral}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createREnumLiteralAdapter()
  {
    if (rEnumLiteralItemProvider == null)
    {
      rEnumLiteralItemProvider = new REnumLiteralItemProvider(this);
    }

    return rEnumLiteralItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.AbstractMessageView} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected AbstractMessageViewItemProvider abstractMessageViewItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.AbstractMessageView}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createAbstractMessageViewAdapter()
  {
    if (abstractMessageViewItemProvider == null)
    {
      abstractMessageViewItemProvider = new AbstractMessageViewItemProvider(this);
    }

    return abstractMessageViewItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.MessageView} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected MessageViewItemProvider messageViewItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.MessageView}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createMessageViewAdapter()
  {
    if (messageViewItemProvider == null)
    {
      messageViewItemProvider = new MessageViewItemProvider(this);
    }

    return messageViewItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.MessageViewReference} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected MessageViewReferenceItemProvider messageViewReferenceItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.MessageViewReference}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createMessageViewReferenceAdapter()
  {
    if (messageViewReferenceItemProvider == null)
    {
      messageViewReferenceItemProvider = new MessageViewReferenceItemProvider(this);
    }

    return messageViewReferenceItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.Interaction} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected InteractionItemProvider interactionItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.Interaction}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createInteractionAdapter()
  {
    if (interactionItemProvider == null)
    {
      interactionItemProvider = new InteractionItemProvider(this);
    }

    return interactionItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.AspectMessageView} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected AspectMessageViewItemProvider aspectMessageViewItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.AspectMessageView}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createAspectMessageViewAdapter()
  {
    if (aspectMessageViewItemProvider == null)
    {
      aspectMessageViewItemProvider = new AspectMessageViewItemProvider(this);
    }

    return aspectMessageViewItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.Lifeline} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected LifelineItemProvider lifelineItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.Lifeline}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createLifelineAdapter()
  {
    if (lifelineItemProvider == null)
    {
      lifelineItemProvider = new LifelineItemProvider(this);
    }

    return lifelineItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.Message} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected MessageItemProvider messageItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.Message}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createMessageAdapter()
  {
    if (messageItemProvider == null)
    {
      messageItemProvider = new MessageItemProvider(this);
    }

    return messageItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.MessageEnd} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected MessageEndItemProvider messageEndItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.MessageEnd}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createMessageEndAdapter()
  {
    if (messageEndItemProvider == null)
    {
      messageEndItemProvider = new MessageEndItemProvider(this);
    }

    return messageEndItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.MessageOccurrenceSpecification} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected MessageOccurrenceSpecificationItemProvider messageOccurrenceSpecificationItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.MessageOccurrenceSpecification}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createMessageOccurrenceSpecificationAdapter()
  {
    if (messageOccurrenceSpecificationItemProvider == null)
    {
      messageOccurrenceSpecificationItemProvider = new MessageOccurrenceSpecificationItemProvider(this);
    }

    return messageOccurrenceSpecificationItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.OccurrenceSpecification} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected OccurrenceSpecificationItemProvider occurrenceSpecificationItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.OccurrenceSpecification}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createOccurrenceSpecificationAdapter()
  {
    if (occurrenceSpecificationItemProvider == null)
    {
      occurrenceSpecificationItemProvider = new OccurrenceSpecificationItemProvider(this);
    }

    return occurrenceSpecificationItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.DestructionOccurrenceSpecification} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected DestructionOccurrenceSpecificationItemProvider destructionOccurrenceSpecificationItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.DestructionOccurrenceSpecification}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createDestructionOccurrenceSpecificationAdapter()
  {
    if (destructionOccurrenceSpecificationItemProvider == null)
    {
      destructionOccurrenceSpecificationItemProvider = new DestructionOccurrenceSpecificationItemProvider(this);
    }

    return destructionOccurrenceSpecificationItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.InteractionFragment} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected InteractionFragmentItemProvider interactionFragmentItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.InteractionFragment}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createInteractionFragmentAdapter()
  {
    if (interactionFragmentItemProvider == null)
    {
      interactionFragmentItemProvider = new InteractionFragmentItemProvider(this);
    }

    return interactionFragmentItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.CombinedFragment} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected CombinedFragmentItemProvider combinedFragmentItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.CombinedFragment}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createCombinedFragmentAdapter()
  {
    if (combinedFragmentItemProvider == null)
    {
      combinedFragmentItemProvider = new CombinedFragmentItemProvider(this);
    }

    return combinedFragmentItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.OriginalBehaviorExecution} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected OriginalBehaviorExecutionItemProvider originalBehaviorExecutionItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.OriginalBehaviorExecution}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createOriginalBehaviorExecutionAdapter()
  {
    if (originalBehaviorExecutionItemProvider == null)
    {
      originalBehaviorExecutionItemProvider = new OriginalBehaviorExecutionItemProvider(this);
    }

    return originalBehaviorExecutionItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.ExecutionStatement} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected ExecutionStatementItemProvider executionStatementItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.ExecutionStatement}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createExecutionStatementAdapter()
  {
    if (executionStatementItemProvider == null)
    {
      executionStatementItemProvider = new ExecutionStatementItemProvider(this);
    }

    return executionStatementItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.InteractionOperand} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected InteractionOperandItemProvider interactionOperandItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.InteractionOperand}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createInteractionOperandAdapter()
  {
    if (interactionOperandItemProvider == null)
    {
      interactionOperandItemProvider = new InteractionOperandItemProvider(this);
    }

    return interactionOperandItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.ValueSpecification} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected ValueSpecificationItemProvider valueSpecificationItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.ValueSpecification}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createValueSpecificationAdapter()
  {
    if (valueSpecificationItemProvider == null)
    {
      valueSpecificationItemProvider = new ValueSpecificationItemProvider(this);
    }

    return valueSpecificationItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.StructuralFeatureValue} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected StructuralFeatureValueItemProvider structuralFeatureValueItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.StructuralFeatureValue}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createStructuralFeatureValueAdapter()
  {
    if (structuralFeatureValueItemProvider == null)
    {
      structuralFeatureValueItemProvider = new StructuralFeatureValueItemProvider(this);
    }

    return structuralFeatureValueItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.ParameterValueMapping} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected ParameterValueMappingItemProvider parameterValueMappingItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.ParameterValueMapping}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createParameterValueMappingAdapter()
  {
    if (parameterValueMappingItemProvider == null)
    {
      parameterValueMappingItemProvider = new ParameterValueMappingItemProvider(this);
    }

    return parameterValueMappingItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.ParameterValue} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected ParameterValueItemProvider parameterValueItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.ParameterValue}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createParameterValueAdapter()
  {
    if (parameterValueItemProvider == null)
    {
      parameterValueItemProvider = new ParameterValueItemProvider(this);
    }

    return parameterValueItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.OpaqueExpression} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected OpaqueExpressionItemProvider opaqueExpressionItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.OpaqueExpression}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createOpaqueExpressionAdapter()
  {
    if (opaqueExpressionItemProvider == null)
    {
      opaqueExpressionItemProvider = new OpaqueExpressionItemProvider(this);
    }

    return opaqueExpressionItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.LiteralSpecification} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected LiteralSpecificationItemProvider literalSpecificationItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.LiteralSpecification}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createLiteralSpecificationAdapter()
  {
    if (literalSpecificationItemProvider == null)
    {
      literalSpecificationItemProvider = new LiteralSpecificationItemProvider(this);
    }

    return literalSpecificationItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.LiteralString} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected LiteralStringItemProvider literalStringItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.LiteralString}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createLiteralStringAdapter()
  {
    if (literalStringItemProvider == null)
    {
      literalStringItemProvider = new LiteralStringItemProvider(this);
    }

    return literalStringItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.LiteralInteger} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected LiteralIntegerItemProvider literalIntegerItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.LiteralInteger}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createLiteralIntegerAdapter()
  {
    if (literalIntegerItemProvider == null)
    {
      literalIntegerItemProvider = new LiteralIntegerItemProvider(this);
    }

    return literalIntegerItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.FragmentContainer} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected FragmentContainerItemProvider fragmentContainerItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.FragmentContainer}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createFragmentContainerAdapter()
  {
    if (fragmentContainerItemProvider == null)
    {
      fragmentContainerItemProvider = new FragmentContainerItemProvider(this);
    }

    return fragmentContainerItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.RCollection} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected RCollectionItemProvider rCollectionItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.RCollection}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createRCollectionAdapter()
  {
    if (rCollectionItemProvider == null)
    {
      rCollectionItemProvider = new RCollectionItemProvider(this);
    }

    return rCollectionItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.RSet} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected RSetItemProvider rSetItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.RSet}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createRSetAdapter()
  {
    if (rSetItemProvider == null)
    {
      rSetItemProvider = new RSetItemProvider(this);
    }

    return rSetItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.RList} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected RListItemProvider rListItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.RList}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createRListAdapter()
  {
    if (rListItemProvider == null)
    {
      rListItemProvider = new RListItemProvider(this);
    }

    return rListItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.Layout} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected LayoutItemProvider layoutItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.Layout}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createLayoutAdapter()
  {
    if (layoutItemProvider == null)
    {
      layoutItemProvider = new LayoutItemProvider(this);
    }

    return layoutItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link java.util.Map.Entry} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected ContainerMapItemProvider containerMapItemProvider;

  /**
   * This creates an adapter for a {@link java.util.Map.Entry}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createContainerMapAdapter()
  {
    if (containerMapItemProvider == null)
    {
      containerMapItemProvider = new ContainerMapItemProvider(this);
    }

    return containerMapItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link java.util.Map.Entry} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected ElementMapItemProvider elementMapItemProvider;

  /**
   * This creates an adapter for a {@link java.util.Map.Entry}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createElementMapAdapter()
  {
    if (elementMapItemProvider == null)
    {
      elementMapItemProvider = new ElementMapItemProvider(this);
    }

    return elementMapItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.LayoutElement} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected LayoutElementItemProvider layoutElementItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.LayoutElement}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createLayoutElementAdapter()
  {
    if (layoutElementItemProvider == null)
    {
      layoutElementItemProvider = new LayoutElementItemProvider(this);
    }

    return layoutElementItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.Classifier} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected ClassifierItemProvider classifierItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.Classifier}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createClassifierAdapter()
  {
    if (classifierItemProvider == null)
    {
      classifierItemProvider = new ClassifierItemProvider(this);
    }

    return classifierItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.ImplementationClass} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected ImplementationClassItemProvider implementationClassItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.ImplementationClass}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createImplementationClassAdapter()
  {
    if (implementationClassItemProvider == null)
    {
      implementationClassItemProvider = new ImplementationClassItemProvider(this);
    }

    return implementationClassItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.TemporaryProperty} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected TemporaryPropertyItemProvider temporaryPropertyItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.TemporaryProperty}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createTemporaryPropertyAdapter()
  {
    if (temporaryPropertyItemProvider == null)
    {
      temporaryPropertyItemProvider = new TemporaryPropertyItemProvider(this);
    }

    return temporaryPropertyItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.StructuralFeature} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected StructuralFeatureItemProvider structuralFeatureItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.StructuralFeature}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createStructuralFeatureAdapter()
  {
    if (structuralFeatureItemProvider == null)
    {
      structuralFeatureItemProvider = new StructuralFeatureItemProvider(this);
    }

    return structuralFeatureItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.Reference} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected ReferenceItemProvider referenceItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.Reference}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createReferenceAdapter()
  {
    if (referenceItemProvider == null)
    {
      referenceItemProvider = new ReferenceItemProvider(this);
    }

    return referenceItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.Property} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected PropertyItemProvider propertyItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.Property}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createPropertyAdapter()
  {
    if (propertyItemProvider == null)
    {
      propertyItemProvider = new PropertyItemProvider(this);
    }

    return propertyItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.TypedElement} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected TypedElementItemProvider typedElementItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.TypedElement}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createTypedElementAdapter()
  {
    if (typedElementItemProvider == null)
    {
      typedElementItemProvider = new TypedElementItemProvider(this);
    }

    return typedElementItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.Gate} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected GateItemProvider gateItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.Gate}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createGateAdapter()
  {
    if (gateItemProvider == null)
    {
      gateItemProvider = new GateItemProvider(this);
    }

    return gateItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.LiteralBoolean} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected LiteralBooleanItemProvider literalBooleanItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.LiteralBoolean}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createLiteralBooleanAdapter()
  {
    if (literalBooleanItemProvider == null)
    {
      literalBooleanItemProvider = new LiteralBooleanItemProvider(this);
    }

    return literalBooleanItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.ClassifierMapping} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected ClassifierMappingItemProvider classifierMappingItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.ClassifierMapping}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createClassifierMappingAdapter()
  {
    if (classifierMappingItemProvider == null)
    {
      classifierMappingItemProvider = new ClassifierMappingItemProvider(this);
    }

    return classifierMappingItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.AttributeMapping} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected AttributeMappingItemProvider attributeMappingItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.AttributeMapping}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createAttributeMappingAdapter()
  {
    if (attributeMappingItemProvider == null)
    {
      attributeMappingItemProvider = new AttributeMappingItemProvider(this);
    }

    return attributeMappingItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.OperationMapping} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected OperationMappingItemProvider operationMappingItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.OperationMapping}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createOperationMappingAdapter()
  {
    if (operationMappingItemProvider == null)
    {
      operationMappingItemProvider = new OperationMappingItemProvider(this);
    }

    return operationMappingItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.ParameterMapping} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected ParameterMappingItemProvider parameterMappingItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.ParameterMapping}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createParameterMappingAdapter()
  {
    if (parameterMappingItemProvider == null)
    {
      parameterMappingItemProvider = new ParameterMappingItemProvider(this);
    }

    return parameterMappingItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.StateView} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected StateViewItemProvider stateViewItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.StateView}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createStateViewAdapter()
  {
    if (stateViewItemProvider == null)
    {
      stateViewItemProvider = new StateViewItemProvider(this);
    }

    return stateViewItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.StateMachine} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected StateMachineItemProvider stateMachineItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.StateMachine}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createStateMachineAdapter()
  {
    if (stateMachineItemProvider == null)
    {
      stateMachineItemProvider = new StateMachineItemProvider(this);
    }

    return stateMachineItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.Transition} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected TransitionItemProvider transitionItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.Transition}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createTransitionAdapter()
  {
    if (transitionItemProvider == null)
    {
      transitionItemProvider = new TransitionItemProvider(this);
    }

    return transitionItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.State} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected StateItemProvider stateItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.State}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createStateAdapter()
  {
    if (stateItemProvider == null)
    {
      stateItemProvider = new StateItemProvider(this);
    }

    return stateItemProvider;
  }

  /**
   * This keeps track of the one adapter used for all {@link ram_pc.Pointcut} instances.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected PointcutItemProvider pointcutItemProvider;

  /**
   * This creates an adapter for a {@link ram_pc.Pointcut}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter createPointcutAdapter()
  {
    if (pointcutItemProvider == null)
    {
      pointcutItemProvider = new PointcutItemProvider(this);
    }

    return pointcutItemProvider;
  }

  /**
   * This returns the root adapter factory that contains this factory.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public ComposeableAdapterFactory getRootAdapterFactory()
  {
    return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
  }

  /**
   * This sets the composed adapter factory that contains this factory.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory)
  {
    this.parentAdapterFactory = parentAdapterFactory;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public boolean isFactoryForType(Object type)
  {
    return supportedTypes.contains(type) || super.isFactoryForType(type);
  }

  /**
   * This implementation substitutes the factory itself as the key for the adapter.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Adapter adapt(Notifier notifier, Object type)
  {
    return super.adapt(notifier, this);
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Object adapt(Object object, Object type)
  {
    if (isFactoryForType(type))
    {
      Object adapter = super.adapt(object, type);
      if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter)))
      {
        return adapter;
      }
    }

    return null;
  }

  /**
   * This adds a listener.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public void addListener(INotifyChangedListener notifyChangedListener)
  {
    changeNotifier.addListener(notifyChangedListener);
  }

  /**
   * This removes a listener.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public void removeListener(INotifyChangedListener notifyChangedListener)
  {
    changeNotifier.removeListener(notifyChangedListener);
  }

  /**
   * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public void fireNotifyChanged(Notification notification)
  {
    changeNotifier.fireNotifyChanged(notification);

    if (parentAdapterFactory != null)
    {
      parentAdapterFactory.fireNotifyChanged(notification);
    }
  }

  /**
   * This disposes all of the item providers created by this factory. 
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public void dispose()
  {
    if (aspectItemProvider != null) aspectItemProvider.dispose();
    if (mappableElementItemProvider != null) mappableElementItemProvider.dispose();
    if (structuralViewItemProvider != null) structuralViewItemProvider.dispose();
    if (classItemProvider != null) classItemProvider.dispose();
    if (associationEndItemProvider != null) associationEndItemProvider.dispose();
    if (associationItemProvider != null) associationItemProvider.dispose();
    if (namedElementItemProvider != null) namedElementItemProvider.dispose();
    if (instantiationItemProvider != null) instantiationItemProvider.dispose();
    if (mappingItemProvider != null) mappingItemProvider.dispose();
    if (operationItemProvider != null) operationItemProvider.dispose();
    if (attributeItemProvider != null) attributeItemProvider.dispose();
    if (typeItemProvider != null) typeItemProvider.dispose();
    if (parameterItemProvider != null) parameterItemProvider.dispose();
    if (primitiveTypeItemProvider != null) primitiveTypeItemProvider.dispose();
    if (objectTypeItemProvider != null) objectTypeItemProvider.dispose();
    if (rVoidItemProvider != null) rVoidItemProvider.dispose();
    if (rBooleanItemProvider != null) rBooleanItemProvider.dispose();
    if (rIntItemProvider != null) rIntItemProvider.dispose();
    if (rCharItemProvider != null) rCharItemProvider.dispose();
    if (rStringItemProvider != null) rStringItemProvider.dispose();
    if (rAnyItemProvider != null) rAnyItemProvider.dispose();
    if (rEnumItemProvider != null) rEnumItemProvider.dispose();
    if (rEnumLiteralItemProvider != null) rEnumLiteralItemProvider.dispose();
    if (abstractMessageViewItemProvider != null) abstractMessageViewItemProvider.dispose();
    if (messageViewItemProvider != null) messageViewItemProvider.dispose();
    if (messageViewReferenceItemProvider != null) messageViewReferenceItemProvider.dispose();
    if (interactionItemProvider != null) interactionItemProvider.dispose();
    if (aspectMessageViewItemProvider != null) aspectMessageViewItemProvider.dispose();
    if (lifelineItemProvider != null) lifelineItemProvider.dispose();
    if (messageItemProvider != null) messageItemProvider.dispose();
    if (messageEndItemProvider != null) messageEndItemProvider.dispose();
    if (messageOccurrenceSpecificationItemProvider != null) messageOccurrenceSpecificationItemProvider.dispose();
    if (occurrenceSpecificationItemProvider != null) occurrenceSpecificationItemProvider.dispose();
    if (destructionOccurrenceSpecificationItemProvider != null) destructionOccurrenceSpecificationItemProvider.dispose();
    if (interactionFragmentItemProvider != null) interactionFragmentItemProvider.dispose();
    if (combinedFragmentItemProvider != null) combinedFragmentItemProvider.dispose();
    if (originalBehaviorExecutionItemProvider != null) originalBehaviorExecutionItemProvider.dispose();
    if (executionStatementItemProvider != null) executionStatementItemProvider.dispose();
    if (interactionOperandItemProvider != null) interactionOperandItemProvider.dispose();
    if (valueSpecificationItemProvider != null) valueSpecificationItemProvider.dispose();
    if (structuralFeatureValueItemProvider != null) structuralFeatureValueItemProvider.dispose();
    if (parameterValueMappingItemProvider != null) parameterValueMappingItemProvider.dispose();
    if (parameterValueItemProvider != null) parameterValueItemProvider.dispose();
    if (opaqueExpressionItemProvider != null) opaqueExpressionItemProvider.dispose();
    if (literalSpecificationItemProvider != null) literalSpecificationItemProvider.dispose();
    if (literalStringItemProvider != null) literalStringItemProvider.dispose();
    if (literalIntegerItemProvider != null) literalIntegerItemProvider.dispose();
    if (fragmentContainerItemProvider != null) fragmentContainerItemProvider.dispose();
    if (rCollectionItemProvider != null) rCollectionItemProvider.dispose();
    if (rSetItemProvider != null) rSetItemProvider.dispose();
    if (rListItemProvider != null) rListItemProvider.dispose();
    if (layoutItemProvider != null) layoutItemProvider.dispose();
    if (containerMapItemProvider != null) containerMapItemProvider.dispose();
    if (elementMapItemProvider != null) elementMapItemProvider.dispose();
    if (layoutElementItemProvider != null) layoutElementItemProvider.dispose();
    if (classifierItemProvider != null) classifierItemProvider.dispose();
    if (implementationClassItemProvider != null) implementationClassItemProvider.dispose();
    if (temporaryPropertyItemProvider != null) temporaryPropertyItemProvider.dispose();
    if (structuralFeatureItemProvider != null) structuralFeatureItemProvider.dispose();
    if (referenceItemProvider != null) referenceItemProvider.dispose();
    if (propertyItemProvider != null) propertyItemProvider.dispose();
    if (typedElementItemProvider != null) typedElementItemProvider.dispose();
    if (gateItemProvider != null) gateItemProvider.dispose();
    if (literalBooleanItemProvider != null) literalBooleanItemProvider.dispose();
    if (classifierMappingItemProvider != null) classifierMappingItemProvider.dispose();
    if (attributeMappingItemProvider != null) attributeMappingItemProvider.dispose();
    if (operationMappingItemProvider != null) operationMappingItemProvider.dispose();
    if (parameterMappingItemProvider != null) parameterMappingItemProvider.dispose();
    if (stateViewItemProvider != null) stateViewItemProvider.dispose();
    if (stateMachineItemProvider != null) stateMachineItemProvider.dispose();
    if (transitionItemProvider != null) transitionItemProvider.dispose();
    if (stateItemProvider != null) stateItemProvider.dispose();
    if (pointcutItemProvider != null) pointcutItemProvider.dispose();
  }

}
